package com.itheima;

import java.util.HashMap;

public class Test2 {
    public static void main(String[] args) {
        
    }

    public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {
        //定义一个哈希表用来表示前两个数组的和，键表示数据元素，值表示数据元素出现的次数
        HashMap<Integer,Integer> hm = new HashMap<>();
        //元数组之和为0个数
        int realcount=0;
        //遍历前两个数组，把他们的和以及出现的次数储存到哈希表中
        for(int i =0;i<nums1.length;i++){
            for(int j =0;j<nums2.length;j++){
                int sum=nums1[i]+nums2[j];
                if(hm.containsKey(sum)){
                    int count = hm.get(sum);
                    count++;
                    hm.put(sum,count);
                }else{
                    hm.put(sum,1);
                }
            }
        }
        //遍历后两个数组，判断他们的和的相反数是否在哈希表内，存在哈希表内，realcount++如果在表示元数组的和为0
        for(int i =0;i<nums3.length;i++){
            for(int j =0;j<nums4.length;j++){
                int sum=0-(nums3[i]+nums4[j]);
                if(hm.containsKey(sum)){
                    realcount+=hm.get(sum);
                }
            }
        }
        //返回次数
        return realcount;
    }
}
